﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Entity.ModelConfiguration;
using Autocentro.Entities;

namespace Autocentro.Respository.Mapping
{
    public class OrdenTrabajoMap:EntityTypeConfiguration<ORDEN_TRABAJO>
    {
        public OrdenTrabajoMap()
        {
            // Primary Key
            this.HasKey(t => t.Id);

            // Properties
            this.Property(t => t.Observacion)
                .IsRequired()
                .HasMaxLength(500);

            this.Property(t => t.HoraEntrada)
                .IsRequired()
                .HasMaxLength(10);

            this.Property(t => t.HoraSalida)
                .IsRequired()
                .HasMaxLength(10);

            // Table & Column Mappings
            this.ToTable("ORDEN_TRABAJO");
            this.Property(t => t.Id).HasColumnName("Id");
            this.Property(t => t.IdVehiculo).HasColumnName("IdVehiculo");
            this.Property(t => t.TrabajadorId).HasColumnName("TrabajadorId");
            this.Property(t => t.FechaEntrada).HasColumnName("FechaEntrada");
            this.Property(t => t.FechaSalida).HasColumnName("FechaSalida");
            this.Property(t => t.Kilometraje).HasColumnName("Kilometraje");
            this.Property(t => t.Observacion).HasColumnName("Observacion");
            this.Property(t => t.Total).HasColumnName("Total");
            this.Property(t => t.Acuenta).HasColumnName("Acuenta");
            this.Property(t => t.Saldo).HasColumnName("Saldo");
            this.Property(t => t.HoraEntrada).HasColumnName("HoraEntrada");
            this.Property(t => t.HoraSalida).HasColumnName("HoraSalida");

            // Relationships
            this.HasRequired(t => t.TRABAJADOR)
                .WithMany(t => t.ORDEN_TRABAJO)
                .HasForeignKey(d => d.TrabajadorId);
            this.HasRequired(t => t.VEHICULO)
                .WithMany(t => t.ORDEN_TRABAJO)
                .HasForeignKey(d => d.IdVehiculo);

        }
    }
}
